
function result = getResult(xj , aux)
%
% 统计收敛结果
%
% 作者：张晨
% 邮箱：chenzhang@csu.ac.cn
% 单位：中国科学院空间应用工程与技术中心，空间探索室
% 时间：2022年02月24日
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% 节点数
nNode = aux.nNode;

% 提取状态
xx_mtx = reshape(xj(1 : 4 * nNode) , 4 , nNode); % 状态

% 【新增】为提高收敛性，第一个节点（LEO）和最后一个节点（LLO）使用轨道根数表示
xx1 = Bcr4bp_var2xxEMRot2D(xx_mtx(: , 1) , 'leo' , aux)';
xxn = Bcr4bp_var2xxEMRot2D(xx_mtx(: , end) , 'llo' , aux)';

x1 = xx1(1);
y1 = xx1(2);
vx1 = xx1(3);
vy1 = xx1(4);

xn = xxn(1);
yn = xxn(2);
vxn = xxn(3);
vyn = xxn(4);

tau_1 = xj(4 * nNode + 1);
tau_f = xj(4 * nNode + 2);

result.tof = tau_f - tau_1;
result.dv_t0 = sqrt(vx1^2 + vy1^2) - sqrt((1 - aux.EMRot.mu) / (aux.dim.rMagLEO / aux.dim.EMRot_l));
result.dv_tf = sqrt(vxn^2 + vyn^2) - sqrt(aux.EMRot.mu / (aux.dim.rMagLLO / aux.dim.EMRot_l));
result.thetaS_t0 = mod(tau_1 * aux.EMRot.ws , 2 * pi);
result.thetaS_tf = mod(tau_f * aux.EMRot.ws , 2 * pi);

end